<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9, { name:'Jack' }]]]]];


        // 变成一维
        // 1
         
        function my_flat(origin){
            const new_arr = [];//准备一个空数组 
            function fn(origin){
                origin.forEach(item => {
                    if(item.constructor === Array){
                        fn(item);
                    }
                    else{
                        new_arr.push(item);
                    }
                });
            }

            fn(origin);

            return new_arr
           
        }

        // console.log(my_flat(arr));



        // 外部函数 返回最终结果  执行内部函数
        // 内部函数  递归判断加入最终的数组中   
        


        // 数组.toString();
        // console.log(arr.toString().split(','));



        // 数组.flat(数字);
        // 表示拆开多少层  
        // Infinity  正无穷
        // -Infinity 负无穷

        // console.log(arr.flat(Infinity));
    </script>
</body>
</html>